"""
类属性:
直接定义在类里面的属性,叫做类属性
一般情况下,我们定义这个类的公共属性
    调用:
        类内:
        类外:
            类名.类属性     推荐
            对象名.类属性
类方法:

    @classmethod:装饰器(注解)
    1.被@classmethod所修的的方法是类方法
    2.第一个参数是cls   cls指向类
    调用:
        类内:
            通过cls来调用类属性或者类方法
        类外:
            类名.类方法     推荐
            对象名.类方法

成员方法可以调用成员属性/方法,类属性/类方法
只要通过对象名去调用的属性或者方法,我们的成员方法都可以调用

类方法只能调用类属性,类方法
"""
class Dog:

    name="小白"  #类属性

    def __init__(self):
        self.age=20  #成员属性

    def show_info(self):
        print(self.name)
        self.sleep()
    #类方法
    @classmethod
    def sleep(cls):
        print(cls.name)
        cls.eat()

    @classmethod
    def eat(cls):
        pass


#第一种方式: 通过对象名.类属性来调用
# d1=Dog()
# d1.
print(d1.name)
#  直接通过  类名.类属性
# print(Dog.name)
#  直接通过  类名.类方法
Dog.sleep()